#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

//bool isLeapYear(int year)
//{
//    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
//        return true;
//    else return  false;
//}
//
//class Date
//{
//public:
//    Date(int year = 0, int month = 0, int day = 0)
//        :_year(year)
//        , _month(month)
//        , _day(day)
//    {
//        ;
//    }
//
//    int GetMonthDay(int year, int month)
//    {
//        if (month == 2 && isLeapYear(year))
//        {
//            return 29;
//        }
//        else
//        {
//            int monthdayarr[] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };
//            return monthdayarr[month];
//        }
//    }
//
//    int PushDay()
//    {
//        int days = 0;
//        for (size_t i = 1; i < _month; i++)
//        {
//            days += GetMonthDay(_year, i);
//        }
//        return days + _day;
//
//    }
//
//private:
//    int _year;
//    int _month;
//    int _day;
//};
//
//
//
//int main() {
//    int year = 0, month = 0, day = 0;
//    cin >> year >> month >> day;
//    Date date(year, month, day);
//    cout << date.PushDay();
//
//}

//bool isLeapYear(int year)
//{
//    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
//        return true;
//    else return  false;
//}
//
//class Date
//{
//public:
//    Date(int year = 0, int month = 0, int day = 0)
//        :_year(year)
//        , _month(month)
//        , _day(day)
//    {
//        ;
//    }
//    int GetMonthDay(int year, int month)
//    {
//        if (month == 2 && isLeapYear(year))
//        {
//            return 29;
//        }
//        else
//        {
//            int monthdayarr[] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };
//            return monthdayarr[month];
//        }
//    }
//
//    void adjust()
//    {
//        while (_day > GetMonthDay(_year, _month))
//        {
//            _day -= GetMonthDay(_year, _month);
//            ++_month;
//            if (_month > 12)
//            {
//                ++_year;
//                _month -= 12;
//            }
//        }
//        while (_day < 1)
//        {
//            _day += GetMonthDay(_year, (_month - 1 < 0) ? 12 : _month - 1);
//            --_month;
//            if (_month < 1)
//            {
//                --_year;
//                _month += 12;
//            }
//        }
//    }
//
//    bool operator>(Date d)
//    {
//        if (_year > d._year)
//        {
//            return true;
//        }
//        else if (_year == d._year && _month > d._month)
//        {
//            return true;
//        }
//        else if (_month == d._month && _day > d._day)
//        {
//            return true;
//        }
//        return false;
//    }
//
//    bool operator==(Date d)
//    {
//        return _year == d._year && _month == d._month && _day == d._day;
//    }
//
//    bool operator!=(Date d)
//    {
//        return !(*this == d);
//    }
//
//
//    int operator-(Date& d1)
//    {
//        int days = 0;
//        Date d2 = *this;
//        if (d1 > d2)
//        {
//            d2 = d1;
//            d1 = *this;
//        }
//        while (d1 != d2)
//        {
//            d1._day++;
//            d1.adjust();
//            days++;
//        }
//        return days;
//    }
//
//private:
//    int _year;
//    int _month;
//    int _day;
//};


//int main() {
//    int num1 = 0, num2 = 0;
//    cin >> num1 >> num2;
//    Date d1(num1 / 10000, num1 / 100 % 100, num1 % 100);
//    Date d2(num2 / 10000, num2 / 100 % 100, num2 % 100);
//    cout << d1 - d2;
//}

//bool isLeapYear(int year)
//{
//    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
//        return true;
//    else return  false;
//}
//
//class Date
//{
//public:
//    Date(int year = 0, int month = 0, int day = 0)
//        :_year(year)
//        , _month(month)
//        , _day(day)
//    {
//        ;
//    }
//
//
//    int GetMonthDay(int year, int month)
//    {
//        if (month == 2 && isLeapYear(year))
//        {
//            return 29;
//        }
//        else
//        {
//            int monthdayarr[] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };
//            return monthdayarr[month];
//        }
//    }
//
//    void adjust()
//    {
//        while (_day > GetMonthDay(_year, _month))
//        {
//            _day -= GetMonthDay(_year, _month);
//            ++_month;
//            if (_month > 12)
//            {
//                ++_year;
//                _month -= 12;
//            }
//        }
//        while (_day < 1)
//        {
//            _day += GetMonthDay(_year, (_month - 1 < 0) ? 12 : _month - 1);
//            --_month;
//            if (_month < 1)
//            {
//                --_year;
//                _month += 12;
//            }
//        }
//    }
//
//    void GetDate(int year = 0, int month = 0, int day = 0)
//    {
//        _year = year;
//        _month = month;
//        _day = day;
//    }
//
//    Date& operator+=(int n)
//    {
//        if (n < 0)
//        {
//            *this -= -n;
//        }
//        else
//        {
//            _day += n;
//        }
//        adjust();
//
//        return *this;
//    }
//
//    Date& operator-=(int n)
//    {
//        if (n < 0)
//        {
//            *this += -n;
//        }
//        else
//        {
//            _day -= n;
//        }
//        adjust();
//
//        return *this;
//    }
//
//    void Print()
//    {
//        printf("%d-%02d-%02d\n", _year, _month, _day);
//
//    }
//
//private:
//    int _year;
//    int _month;
//    int _day;
//};
//
//int main() {
//    int n = 0, m = 0;
//    cin >> n;
//    int year = 0, month = 0, day = 0;
//    Date d;
//    while (n)
//    {
//        cin >> year >> month >> day >> m;
//        d.GetDate(year, month, day);
//        d += m;
//        d.adjust();
//        d.Print();
//        --n;
//    }
//}

